Object-oriented programming is a method of programming that pairs programming tasks and data into re-usable chunks known as objects. Each object comprises attributes (i.e., data) that define and describe the object. Java classes are meta-definitions that define the structure and characteristics for groups of objects in object-oriented parlance. Java classes when instantiated create instances of the Java classes and are then considered Java objects. Methods within Java objects are used to get or set attributes of the Java object and to change the state of the Java object. Associated with each method is code that is executed when the method is invoked.
Java objects of an application, when instantiated, are resident within a computer's memory (e.g., ROM). However, when the computer is turned off or restarted, the objects are flushed from the memory. As such, the objects need to be loaded back into the computer's memory in order to be accessed. Consequently, there is a need for the objects and, particularly, the object attributes to be stored in persistent repository.
The Java objects may be stored as basic system files with a flat file structure. Basic systems files are a simple way of storing the Java objects that would be easily accessible to the application from which the Java objects originated. Unfortunately, other applications would need to learn the application's application programming interfaces (“APIs”) in order to be able to access the object data from the basic system files. Having to learn these APIs is generally a deterrent that would effectively prevent the basic systems files from being usable outside of the originating application.
Storing the Java objects according to a standard protocol would seem to be a necessary improvement. Indeed, there are known methods for serializing Java objects and their attributes and storing them in a Lightweight Directory Access Protocol (“LDAP”) repository. LDAP is an industry standard for storing information into a quickly accessible database. Serializing a Java object comprises converting the Java object's physical memory representation into a string of characters and storing the string of characters in the LDAP repository.
Unfortunately, simply serializing the Java objects and storing them in a LDAP repository does not make the stored Java objects readable or useable by other applications that do not have the same Java object structures. The string of characters has to be converted into the Java object from which it originated in order to be readable. Moreover, serializing the whole Java object necessarily stores attributes that are unimportant to other applications (e.g., attributes that represent internal operations of the Java object).
LDAP does include a plurality of data objects including different types of attributes (e.g., commonName, description, ipHostNumber, host, uidNumber). These LDAP data objects and their attributes, unfortunately, may not directly correspond to an application's Java objects and their attributes. In order to be usable, the LDAP data objects need to be mapped to Java objects. New LDAP data objects and attributes need to be created. If the Java objects are mapped to LDAP data objects, then the Java objects may be stored in a LDAP repository in a manner that is readable and useable by other applications.